* gtk_list_store_insert:
* @list_store: A #GtkListStore
* @iter: (out): An unset #GtkTreeIter to set to the new row
- * @position: position to insert the new row
+ * @position: position to insert the new row, or -1 for last
*
* Creates a new row at @position. @iter will be changed to point to this new
- * row. If @position is larger than the number of rows on the list, then the
- * new row will be appended to the list. The row will be empty after this
- * function is called. To fill in values, you need to call
+ * row. If @position is -1 or is larger than the number of rows on the list,
+ * then the new row will be appended to the list. The row will be empty after
+ * this function is called. To fill in values, you need to call
* gtk_list_store_set() or gtk_list_store_set_value().
*
**/
g_return_if_fail (GTK_IS_LIST_STORE (list_store));
g_return_if_fail (iter != NULL);
- g_return_if_fail (position >= 0);
priv = list_store->priv;
seq = priv->seq;
length = g_sequence_get_length (seq);
- if (position > length)
+ if (position > length || position < 0)
position = length;
ptr = g_sequence_get_iter_at_pos (seq, position);
gtk_list_store_append (GtkListStore *list_store,
GtkTreeIter *iter)
{
- GtkListStorePrivate *priv;
-
g_return_if_fail (GTK_IS_LIST_STORE (list_store));
g_return_if_fail (iter != NULL);
- priv = list_store->priv;
-
- gtk_list_store_insert (list_store, iter, g_sequence_get_length (priv->seq));
+ gtk_list_store_insert (list_store, iter, -1);
}
static void
seq = priv->seq;
length = g_sequence_get_length (seq);
- if (position > length)
+ if (position > length || position < 0)
position = length;
ptr = g_sequence_get_iter_at_pos (seq, position);
* gtk_list_store_insert_with_valuesv:
* @list_store: A #GtkListStore
* @iter: (out) (allow-none): An unset #GtkTreeIter to set to the new row, or %NULL.
- * @position: position to insert the new row
+ * @position: position to insert the new row, or -1 for last
* @columns: (array length=n_values): an array of column numbers
* @values: (array length=n_values): an array of GValues
* @n_values: the length of the @columns and @values arrays
seq = priv->seq;
length = g_sequence_get_length (seq);
- if (position > length)
+ if (position > length || position < 0)
position = length;
ptr = g_sequence_get_iter_at_pos (seq, position);
* @tree_store: A #GtkTreeStore
* @iter: (out): An unset #GtkTreeIter to set to the new row
* @parent: (allow-none): A valid #GtkTreeIter, or %NULL
- * @position: position to insert the new row
+ * @position: position to insert the new row, or -1 for last
*
* Creates a new row at @position. If parent is non-%NULL, then the row will be
* made a child of @parent. Otherwise, the row will be created at the toplevel.
- * If @position is larger than the number of rows at that level, then the new
- * row will be inserted to the end of the list. @iter will be changed to point
- * to this new row. The row will be empty after this function is called. To
- * fill in values, you need to call gtk_tree_store_set() or
+ * If @position is -1 or is larger than the number of rows at that level, then
+ * the new row will be inserted to the end of the list. @iter will be changed
+ * to point to this new row. The row will be empty after this function is
+ * called. To fill in values, you need to call gtk_tree_store_set() or
* gtk_tree_store_set_value().
*
**/
* @tree_store: A #GtkTreeStore
* @iter: (out) (allow-none): An unset #GtkTreeIter to set the new row, or %NULL.
* @parent: (allow-none): A valid #GtkTreeIter, or %NULL
- * @position: position to insert the new row
+ * @position: position to insert the new row, or -1 for last
* @columns: (array length=n_values): an array of column numbers
* @values: (array length=n_values): an array of GValues
* @n_values: the length of the @columns and @values arrays